<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends CommonController {

    protected $user_id=0;
    protected $info;
    /**
     * 构造函数
     */
    public function __construct() {
        parent::__construct();

       $this->info=$this->common_info;
       if($this->info['user_id'])
       {
         $this->user_id=$this->info['user_id'];
       }

    }

    public function index(){
      // $product_spec=array('106');
      //  $spec_goods_id=D('GoodsBase')->is_goods_spec($product_spec);

      //   $spec_name=D('order')->get_goods_attr_info($product_spec);

       // print_r($spec_name);exit();
// 
      
      $time=time();
      $time2=gmtime();
      echo "gmtime:$time--".date("Y-m-d H:i:s",$time)."<br><br>";
      echo "gmtime:$time2--".local_date("Y-m-d H:i:s",$time2)."<br><br>";

        echo "cs--".local_date("Y-m-d H:i:s",'1458601068')."<br><br>".date('Z');

      print_r('index.php');exit();
        // $this->show('首页','utf-8');
      // $this->display('load');
    }
    //联系方式
    public function get_service_phone()
    {
      $re_data['service_phone']='';
      $service_phone=M('shop_config')->where("code='service_phone'")->getField('value');
      if($service_phone)
      {
        $re_data['service_phone']=$service_phone;
        return_data(0,'客服手机号读取成功',$re_data);

      }
      else
      {
        return_data(20001,'没有客服手机号',$re_data);
      }
    }
    //最新apk版本信息
    public function newest_apk()
    {
      $info=M('apk_version')->order("apk_version_id desc")->find();
      if($info)
      {
        $data['version']=$info['version'];
        $data['name']=$info['apk_version_name'];
        $data['url']="http://".$_SERVER['HTTP_HOST']."/".$info['apk_version_url'];
        return_data(0,'apk版本下载成功',$data);

      }
      else
      {
        return_data(20001,'没有apk版本');
      }
    }



    //下拉首页广告
    public function get_index_imgs()
    {   
        $flash_dir = dirname(get_path_root()). '/data';

        $flashdb = array();
        if (file_exists($flash_dir. '/flash_data.xml'))
        {

            // 兼容v2.7.0及以前版本
            if (!preg_match_all('/item_url="([^"]+)"\slink="([^"]+)"\stext="([^"]*)"\ssort="([^"]*)"/', file_get_contents($flash_dir. '/flash_data.xml'), $t, 2))
            {
                preg_match_all('/item_url="([^"]+)"\slink="([^"]+)"\stext="([^"]*)"/', file_get_contents($flash_dir. '/flash_data.xml'), $t, 2);
            }

            if (!empty($t))
            {
                foreach ($t as $key => $val)
                {
                    $val[4] = isset($val[4]) ? $val[4] : 0;
                    $flashdb[] = array('src'=>get_path_url().$val[1],'url'=>$val[2],'text'=>$val[3]);//'sort'=>$val[4]
                }
            }
        }
          if($flashdb)
          {
            return_data(0,'下拉首页广告成功',$flashdb);
          }
          else
          {
             return_data(0,'没有首页广告',$flashdb);
          }
    }
   /***下拉首页商品列表***/
    public function index_goods(){
 /*************测试数据********************开始***/
      // $_POST['last']='1';
      // $_POST['amount']='5';

      //  print_r(json_encode($_POST));exit();
      /*************测试数据********************结束***/
      $DUsers=D('Users');
      //配置文件
      $config=M('shop_config')->getField('code,value');
      //商品分类页列表的数量
      $limit=$config['page_size']?$config['page_size']:10;

      $last=I('post.last', 1, 'int');//页数
      $limit=I('post.amount',$limit, 'int');//大小


      $list=D('Index')->goods_list($this->info,'hot',$limit, ($last-1)*$limit);



      $num=D('Index')->count_goods('is_hot=1');


      $page=get_page_list($list,$last,$limit,$num);
       
      
      
      
     if($page['list'])
      {
        return_data(0,'下拉商品成功',$page);
      }
      else
      {
         return_data(0,'没有商品',$page);
      }
    }
     /**
     * 验证邀请码
     */
      public function check_h_code() {


          /*************测试数据************
          ********开始***/
          // $_POST['h_code']='123sss';
          /*************测试数据********************结束***/




          $shop_config=M('shop_config');
          

          $c_h_code=$shop_config->where("code='h_code'")->getField('value');
           
          $post_h_code = I('post.h_code');

          if($post_h_code==$c_h_code)
          {
            return_data(0,'邀请码正确',$_POST);
          }
          else
          {
             return_data(30000,'邀请码错误',$_POST);
          }
        
      }
    /**
     * 注册
     */
    public function register() {
        // 注册处理

       /*************测试数据********************开始***/
       // $_POST['user_name']='zhsk';
       // $_POST['mobile_phone']='13758070546';
       // $_POST['password']='123456';
       // $_POST['h_code']='123asd';

      
       // $_GET['mshopNo']=2;
       // $_GET['user_pid']=1;
       
       /*************测试数据********************结束***/
        $Users=M('Users');
        $DB_PREFIX=C('DB_PREFIX');
        $shop_config=M('shop_config');



        if ($_POST) {
            // 导游推荐--app 无法利用url链接跳转
            $mshopNo =0;
            $user_pid =0;

            $mobile_phone =I('post.mobile_phone',0);
            $user_name =I('post.user_name',0);

            //检测推荐人的合法性
           
            $post=array();
            $post['mobile_phone']=$mobile_phone;
            $post['user_name'] =$user_name;
            $password=I('post.password','');
            $post['h_code'] = I('post.h_code','');//邀请码
            $post['utype']=1;//用户类型

            $ec_salt=rand(1000,9999);
            $post['password']=md5(md5($password).$ec_salt);

            $post['ec_salt']=$ec_salt;
            $post['reg_time']=gmtime();
            $post['mshop_id']=$mshopNo;//推荐旅行社
            $post['img_str']=I('post.img_str','');//字段保存图片

            
            //邀请码
            $c_h_code=$shop_config->where("code='h_code'")->getField('value');
            if($post['h_code']==$c_h_code)
            {
                $post['utype']=2;
            }

           if (empty($mobile_phone)) {
                return_data(20001,'手机号不能为空');
            }
            
            if (empty($user_name)) {
                return_data(20001,'昵称不能为空');
            }
            if (strlen($user_name) < 3) {
               return_data(20002,'昵称不能小于3个字符');
            }
            if (strlen($user_name) > 15) {
                 return_data(20002,'昵称不能大于15个字符');
            }
            $user_id=$Users->where("user_name='$user_name'")->getField('user_id');
            if ($user_id) {
                 return_data(30001,'昵称已存在');
            } 



            // 验证手机号重复
            $user_id=$Users->where("mobile_phone='$mobile_phone'")->getField('user_id');

            if ($user_id) {
                 return_data(20003,'用户已存在');
            }
           
          $now_time=gmtime();
         
          //上传头像
          if ($_FILES['user_img']['name']) 
          {

                  $info =upload_image('user_img', 'user_image');
                  if($info['error'])
                  {
                     return_data(30002 ,'头像更新失败');
                  }
                  else
                  {
                    $post['img']=$info['message'];
                  }
          }


          $user_id=$Users->add($post);

          if ($user_id) {         
                //记录导游和用户的关系,不排除导游间互相介绍 
                if($user_pid)
                {

                   $u_p_str="('$user_id','$user_pid','$mshopNo','$now_time')"; 
                   $sql = 'INSERT INTO '. $DB_PREFIX . 'users_mshop' . ' (`user_id`, `user_pid`, `mshop_id`, `ctime`) VALUES' .$u_p_str;
                    M()->execute($sql);
                }

                return_data(0,$user_name.'注册成功。');
            } 
            else {
                 return_data(10003,'用户注册失败01');
               }
          
        }
        else
        {
             return_data(20001,'用户注册失败02');
        }



    }
      /**
     * 登录
     */
    public function login() {

      /*************测试数据********************开始***/
       // $_POST['mobile_phone']='13758070546';
       // $_POST['password']='123asd';

        // print_r(json_encode($_POST));exit();
      /*************测试数据********************结束***/


        // 登录处理
        if ($_POST) {
            $mobile_phone = I('post.mobile_phone');
            $password = I('post.password');

            $Users=M('Users');



            // 用户名是手机格式
             $where['mobile_phone'] = $mobile_phone;
             $user_name =$Users->where($where)->getField('user_name');

             
             if(!$user_name)
             {
                return_data(40004,'不存在该用户');
             }
            
            
            $DUsers=D('Users');
            $info=$DUsers->login($mobile_phone, $password);

            if ($info) {

                // $update_user_info=D('Users')->update_user_info($info['user_id']);//会员等级、积分、红包、折扣

                D('Users')->recalculate_price($this->info);//更新购物车价格

               return_data(0,'登录成功',$info);
            } else {
                return_data(10000,'密码错误。');
            }
            
        }
        else
        {
          return_data(20001,'参数为空');
        }
    }

 private function check_sms_mobile_code($mobile_phone,$sms_mobile_code) {
         //检测短信验证
         if ( !$sms_mobile_code) {
                return_data(40003,'验证码为空');
         }
         $user_info=M("sms_mobile")->field('mobile_code,ctime')->where("mobile_phone='$mobile_phone'")->order("ctime desc")->find();
         if(!$user_info)return_data(40004,'手机不存在');
         if($user_info["mobile_code"]!=$sms_mobile_code)
         {
           return_data(40003,'验证码不正确');
         }
         else if($user_info["ctime"]<(gmtime()-900)) return_data(40003,'验证码已过期');

 }
     /**
     * 手机找回密码
     */
    public function get_password_phone() {


      /*************测试数据********************开始***/
      //  $_POST['one_pwd']='123asd';
      //  $_POST['mobile_phone']='13758070546';
      // $_POST['sms_mobile_code']='023719';
      /*************测试数据********************结束***/

      // 手机找回密码处理
      if ($_POST['one_pwd']) {
          

         $one_pwd=I('post.one_pwd');
         $mobile_phone=I('post.mobile_phone');
         $sms_mobile_code=I('post.sms_mobile_code');

         $this->check_sms_mobile_code($mobile_phone,$sms_mobile_code);



         $where=array();
         $ec_salt=rand(1000,9999);
         $pwd=md5(md5($one_pwd).$ec_salt);
         
         $data['ec_salt']=$ec_salt;
         $data['password']=$pwd;
         $where['mobile_phone']=$mobile_phone;

   
         $status=M('Users')->where($where)->save($data);

         if($status)
           return_data(0,'改密成功');
         else
          return_data(10003,'改密失败');
          
      }
      else
      {
         return_data(20001,'没有参数');
      }
    }

    /*选择旅行社*/
    public function travel_agency_list()
    {
      
      /*************测试数据********************开始***/
       // $_POST['mshop_name']='爱';
      /*************测试数据********************结束***/

      $where='1=1';

      $mshop_name=I('post.mshop_name');
      if($mshop_name)
      {
         $where.=" and mshop_name like '%".$mshop_name."%'";
      }
       $data=M('mshop')->field('mshop_id,mshop_name')->where($where)->order('sort_order desc,mshop_name')->select();

       if($data)
       {
        $list=array();
        foreach ($data as $key => $value) {
          $eg=getFirstCharter($value['mshop_name']);
          $list[$eg][]=$value;
        }
        ksort($list);
        return_data(0,'下拉旅行社列表成功',$list);
       }
       else
       return_data(0,'后台尚未添加旅行社');
    }

}